Passage de Paramètres de Fonction avec Typage

Header :

En PHP, le passage de paramètres de fonction avec typage permet de spécifier le type de donnéesattendu pour chaque paramètre. Cela contribue à la clarté du code et à la prévention d'erreurs. Voici comment utiliser le typage pour les paramètres de fonction en PHP.


Body

Typage des Paramètres

Pour spécifier le type de données attendu pour un paramètre, vous pouvez utiliser le type de la variable comme mot-clé avant le nom du paramètre dans la liste des paramètres. Voici un exemple :

<?php
function Additionner(int $a, int $b) {
    $somme = $a + $b;
    echo "La somme est : $somme";
}

// Appel de la fonction avec des entiers
additionner(5, 3);
?>

Dans cet exemple, la fonction Additionner prend deux paramètres de type entier.

Valeurs par Défaut

Vous pouvez également définir des valeurs par défaut pour les paramètres. Ces valeurs seront utilisées si aucun argument n'est passé lors de l'appel de la fonction. Voici un exemple :

<?php
function Saluer(string $nom = "Invité") {
    echo "Bonjour, $nom !";
}

// Appel de la fonction avec et sans argument
Saluer();          // Affiche "Bonjour, Invité !"
Saluer("Alice");   // Affiche "Bonjour, Alice !"
?>

Dans cet exemple, le paramètre $nom a une valeur par défaut de "Invité" s'il n'est pas spécifié lors de l'appel de la fonction.

Typage Mixte

PHP 8.0 et les versions ultérieures permettent un typage mixte, où un paramètre peut accepter plusieurs types de données. Voici un exemple :

<?php
function afficherInfo(mixed $info) {
    var_dump($info);
}

// Appel de la fonction avec différentes valeurs
afficherInfo(42);      // Affiche int(42)
afficherInfo("Hello"); // Affiche string(5) "Hello"
?>

Dans cet exemple, le paramètre $info peut accepter à la fois des entiers et des chaînes de caractères ou autre.

Conclusion

Le typage des paramètres en PHP contribue à la lisibilité du code en spécifiant clairement les types de données attendus. Il permet également de détecter plus tôt les erreurs potentielles. Nous n'utiliserons pas les paramètres autrement qu'avec les types, donc faites-vous y !

Exercices

Reprenons les scripts du chapitre précédent sur les fonctions basique, recréez des fichiers et adaptez-les pour que maintenant ils fonctionnent de la sorte :

Exercice 1: Affichage d'une Pyramide

Objectif : Utiliser une fonction pour afficher une pyramide de caractères '*'.

Instructions :

  1. Définissez une fonction appelée DisplayPyramid qui prends 2 paramètres.
  2. Utilisez une boucle pour afficher une pyramide de '*' de ($roof-$floor) lignes, chaque ligne ayant un nombre croissant de '*' (de $roof à $floor).
  3. Appelez la fonction plusieurs fois avec des arguments différentes pour voir différents résultat s'afficher.
  4. Appelez moi pour me montrer au moins 3 rendus différents à l'aide d'une seule fonction.

Exercice 2: Calcul de Factorielle

Objectif : Utiliser une fonction pour calculer la factorielle d'un nombre.

Instructions :

  1. Définissez une fonction appelée CalculateFactorial.
  2. Utilisez une boucle pour calculer la factorielle de $number ($number!) sans utiliser la fonction factorielle intégrée de PHP.
  3. Affichez le résultat.
  4. Appelez la fonction plusieurs fois avec différents arguments pour afficher plusieurs factorielles, ensuite appelez moi.

Exercice 3: Jeu de Devinettes

Objectif : Utiliser une fonction pour créer un jeu de devinettes simple.

Instructions :

  1. Définissez une fonction appelée GuessGame.
  2. Générez un nombre aléatoire entre $minValue et $maxValue que le joueur doit deviner, avant de commencer à jouer montrez entre quel et quel nombre le nombre va être généré !
  3. Utilisez une boucle pour permettre au joueur de deviner le nombre jusqu'à ce qu'il le trouve, attention aux erreurs d'encodage de l'utilisateur ! Si il encode un nombre hors des bornes, il doit être mis au courant et pas pénalisé !
  4. Affichez un message de félicitations lorsque le joueur trouve le nombre, ainsi qu'en combien d'essais il l'a fait.
  5. Appelez 2 fois cette fonction avec des bornes différentes, montrez moi le résultat
  6. Incorporez un système de triche à votre jeu pour directement savoir quel nombre il faut trouver.